package com.ly.system.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.bean.R;
import com.ly.common.core.bean.dto.CommonBatchUpdateDTO;
import com.ly.system.system.bean.entity.SysCheckRule;

/**
 * 编码校验规则
 *
 * @author jeecg
 * @Date: 2020-02-04
 */
public interface ISysCheckRuleService extends IService<SysCheckRule> {

    /**
     * 查询-id
     */
    R getId(String id);

    /**
     * 列表
     *
     * @param entity
     * @return
     */
    R getList(SysCheckRule entity);

    /**
     * 分页
     */
    R getPage(SysCheckRule entity, Page<SysCheckRule> page);

    /**
     * 新增
     */
    R add(SysCheckRule entity);

    /**
     * 修改
     */
    R edit(SysCheckRule entity);

    /**
     * 删除-id
     */
    R delete(String id);

    /**
     * 批量删除
     */
    R deleteBatch(String ids);

    /**
     * 批量新增或修改
     */
    R updateBatch(CommonBatchUpdateDTO<SysCheckRule> dto);

    /**
     * 通过 code 获取规则
     *
     * @param ruleCode
     * @return
     */
    SysCheckRule getByCode(String ruleCode);

    /**
     * 通过用户设定的自定义校验规则校验传入的值
     *
     * @param checkRule
     * @param value
     * @return 返回 null代表通过校验，否则就是返回的错误提示文本
     */
    JSONObject checkValue(SysCheckRule checkRule, String value);
}
